package base

import "go-api-template/api/models/system"

// StatusReq 程序自检
type StatusReq struct {
}
type StatusResp struct {
	Runtime StatusRespRuntime `json:"runtime"`
	System  StatusRespSystem  `json:"system"`
	Service StatusRespService `json:"service"`
}
type StatusRespRuntime struct {
	UseMem uint64 `json:"use_mem"`
}
type StatusRespSystem struct {
	CpuPercent  float64 `json:"cpu_percent"`
	MemPercent  float64 `json:"mem_percent"`
	DiskPercent float64 `json:"disk_percent"`
}
type StatusRespService struct {
	Mysql string `json:"mysql"`
	Redis string `json:"redis"`
}

// CreateSortLinkReq 创建短链接
type CreateSortLinkReq struct {
	Url string `json:"url"`
}

// SendCaptchaReq 发送验证码
type SendCaptchaReq struct {
	Phone string             `json:"phone"`
	Email string             `json:"email"`
	Mode  SendCaptchaReqMode `json:"mode" binding:"required"`
}
type SendCaptchaResp struct {
}

// LoginReq 账户登录
type LoginReq struct {
	Username string `json:"username"` // 用户名
	Password string `json:"password"` // 密码
	Phone    string `json:"phone"`    // 手机号
	Email    string `json:"email"`    // 邮箱

	Captcha string       `json:"captcha"` // 验证码
	Mode    LoginReqMode `json:"mode" binding:"required"`
}
type LoginResp struct {
	Token    string `json:"token"`
	UserInfo struct {
		Name   string `json:"name"`
		UserId string `json:"user_id"`
	} `json:"user_info"`
}

// CurrentReq 当前用户信息
type CurrentReq struct {
	UserId string `form:"user_id"` // 默认从Token中获取
}
type CurrentResp struct {
	ID       string        `json:"id"`
	Username string        `json:"username"`
	Email    string        `json:"email"`
	Account  string        `json:"account"`
	IsAdmin  int           `json:"is_admin"`
	Roles    string        `json:"role"`
	Menus    []system.Menu `json:"menus"`
}
